import pygame


class Bullet1(pygame.sprite.Sprite):
    def __init__(self, position):
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.image.load("images/bullet1.png").convert_alpha() # 加载子弹图片
        self.rect = self.image.get_rect() # 获取图片对应的矩形区域
        self.rect.left, self.rect.top = position # 设置子弹的初始位置
        self.speed = 12 # 设置子弹的移动速度
        self.active = False # 初始化时，子弹处于非活动状态
        self.mask = pygame.mask.from_surface(self.image) # 创建一个用于碰撞检测的掩码，基于子弹的图片

    # 定义move方法，用于移动子弹
    def move(self):
        # 将子弹向上移动指定的速度
        self.rect.top -= self.speed

        # 如果子弹移出屏幕,则将其设为非活动状态
        if self.rect.top < 0:
            self.active = False

    # 定义reset方法，用于重置子弹的位置和状态
    def reset(self, position):
        # 设置子弹的新位置
        self.rect.left, self.rect.top = position
        # 将子弹设为活动状态
        self.active = True


# 定义一个名为Bullet2的类，继承自pygame.sprite.Sprite，表示第二种子弹
class Bullet2(pygame.sprite.Sprite):
    def __init__(self, position):
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.image.load("images/bullet2.png").convert_alpha() # 加载子弹图片
        self.rect = self.image.get_rect() # 获取图片对应的矩形区域
        self.rect.left, self.rect.top = position # 设置子弹的初始位置
        self.speed = 14 # 设置子弹的移动速度
        self.active = False # 初始化时，子弹处于非活动状态
        self.mask = pygame.mask.from_surface(self.image) # 创建一个用于碰撞检测的掩码，基于子弹的图片

    # 定义move方法，用于移动子弹
    def move(self):
        # 将子弹向上移动指定的速度
        self.rect.top -= self.speed
        # 如果子弹移出屏幕,则将其设为非活动状态
        if self.rect.top < 0:
            self.active = False

    # 定义reset方法，用于重置子弹的位置和状态
    def reset(self, position):
        # 设置子弹的新位置
        self.rect.left, self.rect.top = position
        # 将子弹设为活动状态
        self.active = True

